################################################################################
class Skin():
    """
    View class for Entities (interacts with View and decides what image should
        be used to represent the entity on screen)
    """
    ############################################################################
    def __init__(self, oEntity, sKey):
        """
        param - oEntity : Client Entity object
        param - sKey : Image key
        """
        self._oEntity = oEntity
        self._sKey = sKey
    ############################################################################
    
    ############################################################################
    def GetCurrentImageKey(self):
        """
        return - sKey : Current key for image that should represent the entity
            on the screen
        """
        return self._sKey
    ############################################################################
################################################################################

################################################################################
class SkinManager():
    """
    Manages Skin instances
    """
    ############################################################################
    def __init__(self):
        self._dSkins = {}
        
        # Need to know when a new Entity is created
    ############################################################################
    
    ############################################################################
    def NewEntity(self, oEvent):
        """
        Creates a new Skin instance for the Entity
        """
        oEntity = oEvent.GetEventData('oEntity')
        self._dSkins[oEntity] = Skin(oEntity)
    ############################################################################
################################################################################